///////////////////////////////////////////////////////////////////////////////
///
/// Cylan Client Core
/// Copyright (C) Shenzhen Cylan Tech. Co., Ltd. 2012
///
/// @file       TcpWeb.h
/// @brief      TCP_WEB  API
///
///////////////////////////////////////////////////////////////////////////////
#ifndef CYLAN_TCP_WEB_H
#define CYLAN_TCP_WEB_H

#include "Core/Core.h"
#include "ICAB/ICAB.h"



/**
 * @struct TCP_WEB_RESOURCE
 * @brief TCP_WEB资源信息
 */
typedef struct TCP_WEB
{
    int ID;                         ///< TCP_WEB资源ID
    char Name[CC_NAME_LEN];         ///< TCP_WEB资源名称
    char Desc[CC_NAME_LEN];         ///< TCP_WEB资源描述
    char Icon[CC_NAME_LEN];         ///< TCP_WEB图标地址
    char Uri[CC_MAX_URL];           ///< TCP_WEB链接地址
    int  IconCreateTime;            ///< 图标创建时间
    int  Weight;                    /// TCP_WEB资源排序
} TCP_WEB_RESOURCE;

/**
 * @fn int TcpWebResourceCount(const CHANDLE Session)
 * @brief 返回会话可用的TCP_WEB资源个数
 * @param Session 已登陆的Session句柄
 * @return 可用的TCP_WEB资源量
 */
int TcpWebResourceCount(const CHANDLE Session);

/**
 * @fn CC_STATUS TcpWebResourceInfo(const CHANDLE Session, int Index, TCP_WEB_RESOURCE *Resource, int *Size)
 * @brief 获取TCP_WEB资源信息
 * @param Session 已登陆的Session句柄
 * @param Index 资源索引
 * @param Resource 调用者提供的缓冲区以保存资源信息
 * @param Size Resource参数的缓冲区大小. 如果提供的缓冲区太小, 会返回所需的缓冲区大小字节数.
 * @return TCP_WEB资源信息
 * @retval ERR_SUCCESS 成功
 * @retval ERR_NOT_FOUND 资源索引超出可用资源个数范围
 * @retval ERR_BUFFER_TOO_SMALL 提供的Resource缓冲区太小
 */
CC_STATUS TcpWebResourceInfo(const CHANDLE Session, int Index, TCP_WEB_RESOURCE *Resource, int *Size);


#endif /* CYLAN_TCP_WEB_H */
